/**
 * @description 权限校验插件
 * @author Xiaohui Zeng
 * @version 2021/4/22
 * @Email: 1257538859@qq.com
 * @WeChat: badiweier
 */
import store from '@/store'
/**
 * 获取用户权限 从vuex user.rules里面获取
 */

function getRules() {
  if (Array.isArray(store.state.user.rules)) {
    return store.state.user.rules
  }
  new Error('rules 不是数组')
}

/**
 * 校验权限
 * @param {array} ruleIds 权限id集合 eg: [1,2]
 * @return {boolean}
 */
function checkRule(ruleIds) {
  return ruleIds.some(it => getRules().includes(it))
}
export default {
  install: (app) => {
    // 自定义指令 (功能指令)
    app.directive('auth', (el, binding) => {
      console.log('1111111')
      // 这将被作为 `mounted` 和 `updated` 调用
      if (!checkRule(binding.value)) {
        if (el.parentNode) {
          el.parentNode.removeChild(el)
        } else {
          el.remove()
        }
      }
    })
  }
}
